﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GGLibSharp
{
    class GGDefs
    {
        public static int GG_DCC7_HASH_LEN = 20;	            /**< Maksymalny rozmiar skrótu pliku w połączeniach bezpośrenich */
        public static int GG_DCC7_FILENAME_LEN = 255;	        /**< Maksymalny rozmiar nazwy pliku w połączeniach bezpośrednich */
        public static int GG_DCC7_INFO_LEN = 32;	            /**< Maksymalny rozmiar informacji o połączeniach bezpośrednich */
        public static int GG_DCC7_INFO_HASH_LEN = 32;	        /**< Maksymalny rozmiar skrótu ip informacji o połączeniach bezpośrednich */
        
        public static int GG_DCC_VOICE_FRAME_LENGTH = 195;		/**< Rozmiar pakietu głosowego przed wersją Gadu-Gadu 5.0.5 */
        public static int GG_DCC_VOICE_FRAME_LENGTH_505 = 326;	/**< Rozmiar pakietu głosowego od wersji Gadu-Gadu 5.0.5 */

        public static int GG_DEBUG_NET = 1;		                /**< Rejestracja zdarzeń związanych z siecią */
        public static int GG_DEBUG_TRAFFIC = 2;	                /**< Rejestracja ruchu sieciowego */
        public static int GG_DEBUG_DUMP = 4;		            /**< Rejestracja zawartości pakietów */
        public static int GG_DEBUG_FUNCTION = 8;	            /**< Rejestracja wywołań funkcji */
        public static int GG_DEBUG_MISC = 16;	                /**< Rejestracja różnych informacji */

        public static int GG_LOGIN_HASH_GG32 = 0x01;	        /**< Algorytm Gadu-Gadu */
        public static int GG_LOGIN_HASH_SHA1 = 0x02;	        /**< Algorytm SHA1 */

        public static int GG_GENDER_NONE = 0;
        public static int GG_GENDER_FEMALE = 1;
        public static int GG_GENDER_MALE = 2;

        public static string GG_APPMSG_HOST = "appmsg.gadu-gadu.pl";
        public static int GG_APPMSG_PORT = 80;
        public static string GG_PUBDIR_HOST = "pubdir.gadu-gadu.pl";
        public static int GG_PUBDIR_PORT = 80;
        public static string GG_REGISTER_HOST = "register.gadu-gadu.pl";
        public static int GG_REGISTER_PORT = 80;
        public static string GG_REMIND_HOST = "retr.gadu-gadu.pl";
        public static int GG_REMIND_PORT = 80;
        public static string GG_RELAY_HOST = "relay.gadu-gadu.pl";
        public static int GG_RELAY_PORT = 80;

        public static int GG_DEFAULT_PORT = 8074;
        public static int GG_HTTPS_PORT = 443;
        public static string GG_HTTP_USERAGENT = "Mozilla/4.7 [en] (Win98; I)";

        public static string GG_DEFAULT_CLIENT_VERSION = "10.1.0.11070";
        public static int GG_DEFAULT_PROTOCOL_VERSION = 0x2e;
        public static int GG_DEFAULT_TIMEOUT = 30;
        public static int GG_HAS_AUDIO_MASK = 0x40000000;
        public static int GG_HAS_AUDIO7_MASK = 0x20000000;
        public static int GG_ERA_OMNIX_MASK = 0x04000000;
        public static string GG_LIBGADU_VERSION = "1.10.1";
        public static int GG_DEFAULT_DCC_PORT = 1550;

        public static int GG_WELCOME = 0x0001;
        public static int GG_NEED_EMAIL = 0x0014;
        public static int GG_LOGIN = 0x000c;
        public static int GG_LOGIN_EXT = 0x0013;
        public static int GG_LOGIN60 = 0x0015;
        public static int GG_LOGIN70 = 0x0019;
        public static int GG_LOGIN_OK = 0x0003;

        public static int GG_LOGIN_FAILED = 0x0009;

        public static int GG_PUBDIR50_REQUEST = 0x0014;
        public static int GG_PUBDIR50_REPLY = 0x000e;
        public static int GG_NEW_STATUS = 0x0002;
        public static int GG_STATUS_VOICE_MASK = 0x20000;	/**< czy ma wlaczone audio (7.7) */
        public static int GG_STATUS_DESCR_MAXSIZE = 255;
        public static int GG_STATUS_DESCR_MAXSIZE_PRE_8_0 = 70;
        public static int GG_STATUS_MASK = 0xff;
        public static int GG_NOTIFY_FIRST = 0x000f;
        public static int GG_NOTIFY_LAST = 0x0010;
        public static int GG_NOTIFY = 0x0010;
        public static int GG_USER_OFFLINE = 0x01;
        public static int GG_USER_NORMAL = 0x03;
        public static int GG_USER_BLOCKED = 0x04;
        public static int GG_LIST_EMPTY = 0x0012;
        public static int GG_NOTIFY_REPLY = 0x000c;	/* tak, to samo co GG_LOGIN */
        public static int GG_NOTIFY_REPLY60 = 0x0011;
        public static int GG_STATUS60 = 0x000f;
        public static int GG_NOTIFY_REPLY77 = 0x0018;
        public static int GG_STATUS77 = 0x0017;
        public static int GG_ADD_NOTIFY = 0x000d;
        public static int GG_REMOVE_NOTIFY = 0x000e;
        public static int GG_STATUS = 0x0002;
        public static int GG_SEND_MSG = 0x000b;
        public static int GG_MSG_MAXSIZE = 1989;
        public static int GG_SEND_MSG_ACK = 0x0005;
        public static int GG_RECV_MSG = 0x000a;
        public static int GG_PING = 0x0008;
        public static int GG_PONG = 0x0007;
        public static int GG_DISCONNECTING = 0x000b;
        public static int GG_USERLIST_REQUEST = 0x0016;
        public static int GG_XML_EVENT = 0x0027;
        public static int GG_USERLIST_REPLY = 0x0010;

        public static int GG_DCC_WANT_FILE = 0x0003;		/* peer chce plik */
        public static int GG_DCC_HAVE_FILE = 0x0001;		/* więc mu damy */
        public static int GG_DCC_HAVE_FILEINFO = 0x0003;	/* niech ma informacje o pliku */
        public static int GG_DCC_GIMME_FILE = 0x0006;	/* peer jest pewny */
        public static int GG_DCC_CATCH_FILE = 0x0002;	/* wysyłamy plik */

        public static int GG_DCC_FILEATTR_READONLY = 0x0020;

        public static int GG_DCC_TIMEOUT_SEND = 1800;	/* 30 minut */
        public static int GG_DCC_TIMEOUT_GET = 1800;		/* 30 minut */
        public static int GG_DCC_TIMEOUT_FILE_ACK = 300;	/* 5 minut */
        public static int GG_DCC_TIMEOUT_VOICE_ACK = 300;	/* 5 minut */

        public static int GG_DCC7_INFO = 0x1f;
        public static int GG_DCC7_NEW = 0x20;
        public static int GG_DCC7_ACCEPT = 0x21;
        public static int GG_DCC7_TYPE_P2P = 0x00000001;	/**< Połączenie bezpośrednie */
        public static int GG_DCC7_TYPE_SERVER = 0x00000002;	/**< Połączenie przez serwer */
        public static int GG_DCC7_REJECT = 0x22;
        public static int GG_DCC7_REJECT_BUSY = 0x00000001;	/**< Połączenie bezpośrednie już trwa, nie umiem obsłużyć więcej */
        public static int GG_DCC7_REJECT_USER = 0x00000002;	/**< Użytkownik odrzucił połączenie */
        public static int GG_DCC7_REJECT_VERSION = 0x00000006;	/**< Druga strona ma wersję klienta nieobsługującą połączeń bezpośrednich tego typu */
        public static int GG_DCC7_ID_REQUEST = 0x23;

        public static int GG_DCC7_TYPE_VOICE = 0x00000001;	/**< Transmisja głosu */
        public static int GG_DCC7_TYPE_FILE = 0x00000004;	/**< transmisja pliku */
        public static int GG_DCC7_ID_REPLY = 0x23;
        public static int GG_DCC7_DUNNO1 = 0x24;
        public static int GG_DCC7_TIMEOUT_CONNECT = 10;	/* 10 sekund */
        public static int GG_DCC7_TIMEOUT_SEND = 1800;	/* 30 minut */
        public static int GG_DCC7_TIMEOUT_GET = 1800;	/* 30 minut */
        public static int GG_DCC7_TIMEOUT_FILE_ACK = 300;	/* 5 minut */
        public static int GG_DCC7_TIMEOUT_VOICE_ACK = 300;	/* 5 minut */

    }
}
